#pragma once
/**
* This interface provides array based access to an object.
* In this case we want to access an index that is coupled
* to a Semantic.
* This class is a virtual base class.
* @author Koen Samyn
*/
class SemanticIndexSupport
{
public:
	/**
	* Constructs a new SemanticIndexSupport object.
	* Should not be used.
	*/
	SemanticIndexSupport(void);
	/**
	* Destroys the SemanticIndexSupport object.
	*/
	virtual ~SemanticIndexSupport(void);
	/**
	* Sets a semantic index value in this object.
	* @param index the index in the internal array.
	* @param indexValue the value to set.
	* @return true if setting the value was succesful, false otherwise.
	*/
	virtual bool SetSemanticIndex(unsigned short index, unsigned short indexValue)=0;
	/**
	* Gets the value of an index.
	* @param index the index to get the semantic index for.
	* @return the index.
	*/ 
	virtual unsigned short GetSemanticIndex(unsigned short index)=0;
};
